package com.itheima.utils;

import java.util.ResourceBundle;

/**
 * Bean 对象 Factory 工厂 Utils 工具类
 *  负责程序中的对象创建
 */
public class BeanFactoryUtils {
    /**
     * 问题:  类过多 if else就太多了->>> 抽
     * 1.在配置文件中声明 key和全限定类名的关系
     * 2.外部传入标识符
     * 3.方法的内部 根据标识符 找到对应的全限定类名
     * 4.实例化对象返回即可
     */
    public static Object getBean(String key){//外部传入的 routeService , categoryService
        Object o = null;
        try {
            //1.加载配置文件
            ResourceBundle bundle = ResourceBundle.getBundle("bean");
            //2.根据key获得全限定类名
            String className = bundle.getString(key);
            //3.反射实例化对象
            o = Class.forName(className).newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return o;
    }
}
